home *** CD-ROM | disk | FTP | other *** search
/ New Star Software Collection / NSS_Collection.iso / 3-189 super show & tell 11 / 1.ima / SST.MST < prev    next >
Encoding:
Text File  |  1993-08-25  |  7.3 KB  |  241 lines

  1. '**************************************************************************
  2. '*                       SST Setup Script...
  3. '**************************************************************************
  4.  
  5. '*** DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8.  
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST OPTIONS       = 800
  19. CONST APPHELP       = 900
  20. CONST BADPATH       = 6400
  21. CONST SpaceNeeded&  = 10600000          ' 10,600,000 bytes required
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL OPTCUR$      ''Option selection from option dialog.
  28. GLOBAL FreeSpace&
  29.  
  30. DECLARE SUB Install
  31. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  32.  
  33.  
  34. INIT:
  35.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  36.     HELPPROC$ = "FHelpDlgProc"          ''Help dia      ''Help dialog procedure
  37.  
  38.     SetBitmap CUIDLL$, LOGO
  39.     SetTitle "SST Setup"
  40.     Temp$ = "SST Version 1.0" + CHR$(13) + "Copyright (C) 1993, Innovative Communication Systems, Inc."
  41.     SetAbout "Super Show & Tell", TEMP$
  42.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  43.     IF szInf$ = "" THEN
  44.     szInf$ = GetSymbolValue("STF_CWDDIR") + "SSTINF.INF"
  45.     END IF
  46.     ReadInfFile szInf$
  47.  
  48.     OPTCUR$ = "1"
  49.     DEST$ = "C:\SSTV1"
  50.  
  51. '''$IFDEF DEBUG
  52.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  53.     WinDir$ = GetWindowsDir
  54.     WinDrive$ = MID$(WinDir$, 1, 1)
  55.     IF IsDriveValid(WinDrive$) = 0 THEN
  56.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  57.     GOTO QUIT
  58.     END IF
  59. '''$ENDIF ''DEBUG
  60.  
  61.  
  62. WELCOME:
  63.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  64.     IF sz$ = "CONTINUE" THEN
  65.     UIPop 1
  66.     ELSE
  67.     GOSUB ASKQUIT
  68.     GOTO WELCOME
  69.     END IF
  70.  
  71. GETPATH:
  72.     SetSymbolValue "EditTextIn", DEST$
  73.     SetSymbolValue "EditFocus", "END"
  74. GETPATHL1:
  75.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  76.     DEST$ = GetSymbolValue("EditTextOut")
  77.  
  78.     IF sz$ = "CONTINUE" THEN
  79.     IF IsDirWritable(DEST$) = 0 THEN
  80.         GOSUB BADPATH
  81.         GOTO GETPATHL1
  82.     END IF
  83.     DESTDRIVE$ = MID$(DEST$, 1, 1)
  84.     FreeSpace& = GetFreeSpaceForDrive(DEST$) 
  85.     IF FreeSpace& < SpaceNeeded& THEN
  86.         GOSUB MORESPACE
  87.         GOTO GETPATHL1
  88.     ENDIF
  89.     UIPop 1
  90.     ELSEIF sz$ = "REACTIVATE" THEN
  91.     GOTO GETPATHL1
  92.     ELSEIF sz$ = "BACK" THEN
  93.     UIPop 1
  94.     GOTO WELCOME
  95.     ELSE
  96.     GOSUB ASKQUIT
  97.     GOTO GETPATH
  98.     END IF
  99.  
  100.     Install
  101.  
  102.     INIFile$ = DEST$ + "\SST.INI"
  103.     CreateIniKeyValue INIFile$, "SST", "picturedir", (DEST$ + "\Images"), cmoOverwrite
  104.     CreateIniKeyValue INIFile$, "SST", "picturetype", "1", cmoOverwrite
  105.     CreateIniKeyValue INIFile$, "SST", "sounddir", (DEST$ + "\Sounds"), cmoOverwrite
  106.     CreateIniKeyValue INIFile$, "SST", "soundtype", "1", cmoOverwrite
  107.     CreateIniKeyValue INIFile$, "SST", "carouseldir", DEST$, cmoOverwrite
  108.     CreateIniKeyValue INIFile$, "SST", "userselectdir", DEST$, cmoOverwrite
  109.     CreateIniKeyValue INIFile$, "SST", "altered", "0", cmoOverwrite
  110.     CreateIniKeyValue INIFile$, "SST", "moviedir", (DEST$ + "\Movies"), cmoOverwrite
  111.     CreateIniKeyValue INIFile$, "SST", "movietype", "2", cmoOverwrite
  112.     CreateIniKeyValue INIFile$, "SST", "setupdir", (DEST$ + "\Runtime"), cmoOverwrite
  113.  
  114.  
  115. QUIT:
  116.     ON ERROR GOTO ERRQUIT
  117.  
  118.     IF ERR = 0 THEN
  119.     dlg% = EXITSUCCESS
  120.     ELSEIF ERR = STFQUIT THEN
  121.     dlg% = EXITQUIT
  122.     ELSE
  123.     dlg% = EXITFAILURE
  124.     END IF
  125. QUITL1:
  126.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  127.     IF sz$ = "REACTIVATE" THEN
  128.     GOTO QUITL1
  129.     END IF
  130.     UIPop 1
  131.  
  132.     END
  133.  
  134. ERRQUIT:
  135.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  136.     END
  137.  
  138. BADPATH:
  139.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  140.     IF sz$ = "REACTIVATE" THEN
  141.     GOTO BADPATH
  142.     END IF
  143.     UIPop 1
  144.     RETURN
  145.  
  146. MORESPACE:
  147.     Temp$ = "SST needs " + STR$(SpaceNeeded&) + " bytes to install." + CHR$(13)
  148.     Temp$ = Temp$ + "There is only " + STR$(FreeSpace&) +" bytes free."
  149.     i% = DoMsgBox( Temp$, "Not Enough Disk Space", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  150.     RETURN
  151.  
  152. ASKQUIT:
  153.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  154.     IF sz$ = "EXIT" THEN
  155.     UIPopAll
  156.     ERROR STFQUIT
  157.     ELSEIF sz$ = "REACTIVATE" THEN
  158.     GOTO ASKQUIT
  159.     ELSE
  160.     UIPop 1
  161.     END IF
  162.     RETURN
  163.  
  164. '**
  165. '** Purpose:
  166. '**     Builds the copy list and performs all installation operations.
  167. '** Arguments:
  168. '**     none.
  169. '** Returns:
  170. '**     none.
  171. '*************************************************************************
  172. SUB Install STATIC
  173.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  174.     CreateDir DEST$, cmoNone
  175.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  176.     CreateDir DEST$ + "\Images", cmoNone
  177.     CreateDir DEST$ + "\Sounds", cmoNone
  178.     CreateDir DEST$ + "\Movies", cmoNone
  179.     CreateDir DEST$ + "\Runtime", cmoNone
  180.  
  181.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  182.     AddSectionFilesToCopyList "Images", SrcDir$, DEST$ + "\Images"
  183.     AddSectionFilesToCopyList "Sounds", SrcDir$, DEST$ + "\Sounds"
  184.     AddSectionFilesToCopyList "Movies", SrcDir$, DEST$ + "\Movies"
  185.     AddSectionFilesToCopyList "Runtime", SrcDir$, DEST$ + "\Runtime"
  186.     AutoDesk$ = GetIniKeyString( "WIN.INI", "AAPLAY Animation", "FullScreen" )
  187.     IF AutoDesk$ = "" THEN
  188.     AddSectionFilesToCopyList "AAPLAY", SrcDir$, DEST$
  189.     WriteToLogFile "AAPLAY Animation not found in WIN.INI, copying AAPLAY.DLL"
  190.     ELSE
  191.     WriteToLogFile "Found AAPLAY Animation in WIN.INI - Checking for AAVGA.DLL and AAPLAY.DLL"
  192.     AAVGA$ = FindFileInTree("AAVGA.DLL", WinDir$)
  193.     WriteToLogFile "Search result for AAVGA.dll is |" + AAVGA$ + "|"
  194.     AAPLAY$ = FindFileInTree("AAPLAY.DLL", WinDir$)
  195.     WriteToLogFile "Search result for AAPLAY.dll is |" + AAPLAY$ + "|"
  196.     IF AAPLAY$ = "" THEN
  197.         AddSectionFilesToCopyList "AAPLAY", SrcDir$, DEST$
  198.         WriteToLogFile "Will copy AAPLAY.DLL"
  199.     ELSE
  200.         WriteToLogFile "Will not copy AAPLAY.DLL, found another version."
  201.     ENDIF
  202.     ENDIF
  203.  
  204.     CopyFilesInCopyList
  205.  
  206.     CreateProgmanGroup "SST", "", cmoNone
  207.     ShowProgmanGroup "SST", 1, cmoNone
  208.  
  209.     Icon1$ = " , 0, 1, 1," + DEST$
  210.     CreateProgmanItem "SST", "READ ME 1ST", "notepad.exe "+MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  211.     CreateProgmanItem "SST", "Registration Form", "notepad.exe "+MakePath(DEST$,"register.txt"), "", cmoOverwrite
  212.     CreateProgmanItem "SST", "SST", (DEST$ + "\SST.exe"), Icon1$, cmoOverwrite
  213.     CloseLogFile
  214.  
  215. END SUB
  216.  
  217.  
  218.  
  219. '**
  220. '** Purpose:
  221. '**     Appends a file name to the end of a directory path,
  222. '**     inserting a backslash character as needed.
  223. '** Arguments:
  224. '**     szDir$  - full directory path (with optional ending "\")
  225. '**     szFile$ - filename to append to directory
  226. '** Returns:
  227. '**     Resulting fully qualified path name.
  228. '*************************************************************************
  229. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  230.     IF szDir$ = "" THEN
  231.     MakePath = szFile$
  232.     ELSEIF szFile$ = "" THEN
  233.     MakePath = szDir$
  234.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  235.     MakePath = szDir$ + szFile$
  236.     ELSE
  237.     MakePath = szDir$ + "\" + szFile$
  238.     END IF
  239. END FUNCTION
  240.  
  241.